package com.base;

import java.util.ArrayList;
import java.util.List;

import org.apache.cxf.jaxws.JaxWsProxyFactoryBean;

/**
 * @ClassName:CxfClient
 * @Description:webservice客户端：
 *                 该类提供两种不同的方式来调用webservice服务
 *              1：代理工厂方式
 *              2：动态调用webservice
 * @author Jerry
 * @date:2018年4月10日下午4:14:07
 */
public class CxfClient {


    public static void main(String[] args) {
//        CxfClient.main1();
//        CxfClient.main2();
//        CxfClient.main2();
    }

    /**
     * 1.代理类工厂的方式,需要拿到对方的接口地址
     */
//    public static void main1() {
//        try {
//            // 接口地址
//            String address = "http://127.0.0.1:9001/b2b/ws/pushCustomerData?wsdl";
//            //String address = "http://office.lifecycle.cn:19001/b2b/ws/pushCustomerData?wsdl";
//            // 代理工厂
//            JaxWsProxyFactoryBean jaxWsProxyFactoryBean = new JaxWsProxyFactoryBean();
//            // 设置代理地址
//            jaxWsProxyFactoryBean.setAddress(address);
//            // 设置接口类型
//            jaxWsProxyFactoryBean.setServiceClass(ICustomerData.class);
//            // 创建一个代理接口实现
//            ICustomerData data = (ICustomerData) jaxWsProxyFactoryBean.create();
//            // 数据准备
//            List<CustomerData> customerDatas = new ArrayList<CustomerData>();
//            CustomerData customerData = new CustomerData();
//            customerData.setZKUNNR("1");
//            customerData.setORT01("1");
//            customerData.setSTRAS("1");
//            customerData.setZBJ001(new BigDecimal(1.11));
//            
//            CustomerData customerData2 = new CustomerData();
////            customerData2.setZKUNNR("2");
//            customerData2.setORT01("2");
//            customerData2.setSTRAS("2");
//            customerData2.setZBJ001(new BigDecimal(2.22));
//            
//            
//            CustomerData customerData3 = new CustomerData();
//            customerData3.setZKUNNR("3");
//            customerData3.setORT01("3");
//            customerData3.setSTRAS("3");
//            customerData3.setZBJ001(new BigDecimal(2.22));
//            
//            customerDatas.add(customerData);
//            customerDatas.add(customerData2);
//            customerDatas.add(customerData3);
//            List<CustomerDataResult> list = data.pushCustomerData(customerDatas);
//            for (CustomerDataResult result : list) {
//				System.out.println(result.getZKUNNR() + "||" +result.getZSUCCESS() + "||" + result.getZMESSAGE() );
//			}
//        } catch (Exception e) {
//            e.printStackTrace();
//        }
//    }
//    
//    
//    
//    public static void main2() {
//        try {
//            // 接口地址
//            String address = "http://127.0.0.1:9001/b2b/ws/pushPlantData?wsdl";
//            //String address = "http://office.lifecycle.cn:19001/b2b/ws/pushCustomerData?wsdl";
//            // 代理工厂
//            JaxWsProxyFactoryBean jaxWsProxyFactoryBean = new JaxWsProxyFactoryBean();
//            // 设置代理地址
//            jaxWsProxyFactoryBean.setAddress(address);
//            // 设置接口类型
//            jaxWsProxyFactoryBean.setServiceClass(IPlantData.class);
//            // 创建一个代理接口实现
//            IPlantData data = (IPlantData) jaxWsProxyFactoryBean.create();
//            // 数据准备
//            List<PlantData> datas = new ArrayList<PlantData>();
//            PlantData obj1 = new PlantData();
//            obj1.setWERKS("1");
//            List<PlantDataItem> items1 = new ArrayList<PlantDataItem>();
//            PlantDataItem item1 = new PlantDataItem();
//            item1.setWERKS("1");
//            item1.setLGOBE("上海1");
//            PlantDataItem item2 = new PlantDataItem();
//            item2.setWERKS("1");
//            PlantDataItem item3 = new PlantDataItem();
//            item3.setWERKS("1");
//            item3.setLGOBE("上海3");
//            items1.add(item1);
//            items1.add(item2);
//            items1.add(item3);
//            obj1.setItems(items1);
//            
//            PlantData obj2 = new PlantData();
//            obj2.setWERKS("2");
//            List<PlantDataItem> items2 = new ArrayList<PlantDataItem>();
//            PlantDataItem item21 = new PlantDataItem();
//            item21.setWERKS("2");
//            item21.setLGOBE("上海21");
//            PlantDataItem item22 = new PlantDataItem();
//            item22.setWERKS("2");
//            item22.setLGOBE("上海22");
//            PlantDataItem item23 = new PlantDataItem();
//            item23.setWERKS("2");
//            item23.setLGOBE("上海23");
//            items2.add(item21);
//            items2.add(item22);
//            items2.add(item23);
//            obj2.setItems(items2);
//            
//            datas.add(obj1);
//            datas.add(obj2);
//            List<PlantDataResult> list = data.pushPlantData(datas);
//            for (PlantDataResult result : list) {
//				System.out.println(result.getWERKS() + "||" +result.getZSUCCESS() + "||" + result.getZMESSAGE() );
//			}
//        } catch (Exception e) {
//            e.printStackTrace();
//        }
//    }
    
    
    
    
    

    /**
     * 2：动态调用
     */
//    public static void main2() {
//        // 创建动态客户端
//        JaxWsDynamicClientFactory dcf = JaxWsDynamicClientFactory.newInstance();
//        Client client = dcf.createClient("http://127.0.0.1/soap/user?wsdl");
//        // 需要密码的情况需要加上用户名和密码
//        // client.getOutInterceptors().add(new ClientLoginInterceptor(USER_NAME, PASS_WORD));
//        Object[] objects = new Object[0];
//        try {
//            // invoke("方法名",参数1,参数2,参数3....);
//            objects = client.invoke("getUserName", "maple");
//            System.out.println("返回数据:" + objects[0]);
//        } catch (java.lang.Exception e) {
//            e.printStackTrace();
//        }
//    }
}